@Book{barendregt-lc,
	author		= "Barendregt, Henk P{.}",
	title		= "The Lambda Calculus: Its Syntax and Semantics",
	publisher	= "Elsevier Science Publishing Company",
	year 		= 1984,
	address 	= "Amsterdam, Netherlands",
	annote 		= {The lambda calculus is very important to
				understanding type systems, as many type
				systems are based on it. This book, which is a
				“classic” reference for the lambda calculus,
				should serve as a very important reference for
				any and all work that I do with the lambda 
				calculus as applied to type systems.
			}
	}

@Book{pierce,
	author		= "Pierce, Benjamin C{.}",
	title		= "Types and Programming Languages",
	publisher	= "The MIT Press",
	address		= "Cambridge, MA",
	year 		= 2002,
	annote 		= {This text is an extensive overview of type theory as it applies to programming languages. I expect it to be a major resource to be used as reference as I plan and design my project. 
			}
	}

@book{abelson,
	author		= "Harold Abelson and Gerald Jay Sussman",
	title		= "Structure and Interpretation of Computer Programs",
	publisher	= "The MIT Press",
	address		= "Cambridge, MA",
	year		= 1996
}

@book{barclay,
	author		= "Kenneth Barclay and John Savage",
	title		= "Groovy Programming: An Introduction for Java Developers",
	publisher	= "Morgan Kaufmann",
	address		= "San Francisco, CA",
	year 		= 2007
}

@InProceedings{siek06,
author = {Jeremy G. Siek and Walid Taha},
title = {Gradual typing for functional languages},
booktitle = {Scheme and Functional Programming Workshop},
year = 2006,
month = {September} ,
address = {New York, NY},
annote = {Another implementation of a type system “in-between” static and dynamic typing. Siek's “gradual typing” is another important reference and element in my Survey Paper.}
}

@inproceedings{thatte90,
 author = {Thatte, Satish},
 title = {Quasi-static typing},
 booktitle = {Proceedings of the 17th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
 year = {1990},
 isbn = {0-89791-343-4},
 pages = {367--381},
 location = {San Francisco, CA},
 doi = {http://doi.acm.org/10.1145/96709.96747},
 publisher = {ACM Press},
 address = {New York, NY},
annote={An early paper on “dynamic typing in a static framework,” this is another implementation of something similar to what I'm interested in trying. I'm not sure if this one will be directly useful but as a basis for understanding some of the later work that builds upon it, such as Siek and Flanagan, I think it will be important.}
 }



@booklet{krishnamurthi,
	author		= "Krishnamurthi, Shriram",
	title		= "Programming Languages: Application and Interpretation",
	howpublished	= "Available at \url{http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/}",
	year 		= 2007,
	annote 		= {This book is a text that I have used before, as the primary textbook for Professor Lasseter's Programming Languages class in 2007. It demonstrates multiple ways to implement type systems using Scheme, a language I am familiar with and am considering using.
			}
	}
	
@booklet{harper,
	author		= "Harper, Robert",
	title		= "Practical Foundations for Programming Languages",
	howpublished	= "Available at \url{http://www.cs.cmu.edu/~rwh/plbook/book.pdf}",
	year 		= 2010
	}
	
@booklet{aaby,
	author = "Aaby, Anthony",
	title = "Introduction to Programming Languages",
	howpublished = "Available at \url{http://www.emu.edu.tr/aelci/Courses/D-318/D-318-Files/plbook/index.htm}",
	year = 2004
	}

@inproceedings{cousot77,
   author =    {Cousot, Patrick and Cousot, Radhia},
   title =     {Abstract interpretation: a unified lattice model for static 
                analysis of programs by construction or approximation of 
                fixpoints},
   pages =     {238--252},
   booktitle = {Conference Record of the Fourth Annual ACM SIGPLAN-SIGACT 
                Symposium on Principles of Programming Languages},
   location =   {Los Angeles, California},
address = {New York, NY},
   publisher = {ACM Press},
   year =      1977,
   annote = {One of the issues that comes up in static versus dynamic type systems is the difficulty (or impossibility) of abstract interpretation of dynamic languages. The Cousot paper here is very informative about abstract interpretation, and will be useful in seeing my project can, in fact, support any form of abstract interpretation.}
}

@inproceedings{flanagan06,
   author =    {Flanagan, Cormac},
   title =     {Hybrid type checking},
   pages =     {245--256},
   booktitle = {Proceedings of the 33rd Annual ACM SIGPLAN-SIGACT 
                Symposium on Principles of Programming Languages},
   location =   {Charleston, South Carolina},
address = {New York, NY},
   publisher = {ACM Press},
   year =      2006,
   annote = {This paper explores Cormac Flanagan's hybrid type checking system on a typed lambda calculus. This system is one of the presently developed ideas of hybrid typing, and is therefore of major importance to me for reference and in my Survey Paper.}
}

@article{abadi91,
 author = {Abadi, Mart\'{\i}n and Cardelli, Luca and Pierce, Benjamin C{.} and Plotkin, Gordon},
 title = {Dynamic typing in a statically typed language},
 journal = {ACM Transactions on Programming Languages and Systems},
 volume = {13},
 number = {2},
 year = {1991},
 issn = {0164-0925},
 pages = {237--268},
 doi = {http://doi.acm.org/10.1145/103135.103138},
 publisher = {ACM},
 address = {New York, NY, USA},
 }


@incollection{barendregt-lcwt,
	author  = {Barendregt, Henk P{.}},
	title = {Lambda Calculi with Types},
	booktitle = {Handbook of Logic in Computer Science Volume 2: Background: 
			Computational Structures},
	year = 1992,
	pages = {117--309},
	editor = {Abramsky, S{.} and Gabbay, Dov M{.} and Maibaum, T{.}S{.}E{.}},
	publisher = {Oxford University Press},
	address = {New York, NY},
	annote = {This text is something of a sequel to Barendregt's book on the untyped lambda
			calculus. It covers the addition of a type system to the lambda calculus,
			which will be very relevant to considering the intersection of static and
			dynamic systems. I expect to use it in modeling ideas about my system. }
}

@inproceedings{cartwright91,
  author    = {Robert Cartwright and
               Mike Fagan},
  title     = {Soft Typing},
  booktitle = {Proceedings of the ACM SIGPLAN'91 Conference on Programming Language Design and Implementation},
  year      = {1991},
  pages     = {278--292},
  location  = {Toronto, Ontario},
  address = {New York, NY},
   publisher = {ACM Press},
       annote = { This paper describes a method of gaining some of the benefits of both static and dynamic typing
		by using a static system that instead of rejecting ill-typed programs, inserts runtime checks.
		This is a method that may be interesting as a comparison to my system and to understand how
		to approach mixed-type systems.}
}

@article{hudak89,
   author =    {Hudak, Paul},
   title =     {Conception, evolution, and application of functional
		 programming languages},
   journal = {ACM Computing Surveys},
   volume=21,
   number=3,
   pages={359--411},
   publisher = {ACM Press},
address = {New York, NY},
   year = 1989,
   annote = {Because of my familiarity with functional languages and my experience working with them and type systems in Professor Lasseter's class, I at this point intend to develop a functional language. While this article is old, it still lays out a foundation and justification for functional languages, and I don't believe the basic theory has changed much in the last 20 years. Therefore this will be a resource in considering the form and function of my language.}
}




